(defun make-color-theme-list (&optional arg)
  (interactive "P")
  (let ((previous (get-buffer "*color-theme-list*")))
    (switch-to-buffer "*color-theme-list*")
    (dolist (theme color-themes)
      (let ((func (nth 0 theme))
            (name (nth 1 theme))
            (author (nth 2 theme))
            (library (nth 3 theme))
            (desc))
        (when (or (not library) arg)
          (setq desc (format "%s:%s"
                             (if library (concat name " [lib]") name)
                             func))
          (insert desc)
          (newline))))
    (write-region (point-min) (point-max) "color-theme-list.txt")))
